package com.justgame.project.service.just.service.basic;

import com.justgame.project.service.just.entity.JustGamePlatform;
import com.justgame.project.service.just.query.JustGamePlatformQuery;
import com.justgame.project.service.just.wrapper.JustGamePlatformWrapper;
import com.justgame.project.base.servcice.IBasicService;
import org.springframework.util.Assert;
import org.springframework.lang.NonNull;
import java.lang.String;

/**
 *
 * 游戏平台服务自定义查询类
 *
 * @@tableName just_game_platform
 * @author Zwb
 */
@SuppressWarnings("all")
public interface BasicJustGamePlatformService extends IBasicService<JustGamePlatformQuery,JustGamePlatform,JustGamePlatformWrapper> {

   /**
    * 新增创建
    * @param name 名称
    * @param platformVersion 平台版本
    * @param notice 其他须知
    * @param imageUrl 封面图
    * @param description 描述
    */
   default JustGamePlatform baseAdd(String name, String platformVersion, String notice, String imageUrl, String description){
      JustGamePlatform justGamePlatform = new JustGamePlatform();
      justGamePlatform.setName(safeValue(name, null));
      justGamePlatform.setPlatformVersion(safeValue(platformVersion, null));
      justGamePlatform.setNotice(safeValue(notice, null));
      justGamePlatform.setImageUrl(safeValue(imageUrl, null));
      justGamePlatform.setDescription(safeValue(description, null));
      save(justGamePlatform);
      return justGamePlatform;
   }

   /**
    * 更新
    * @param name 名称
    * @param platformVersion 平台版本
    * @param notice 其他须知
    * @param imageUrl 封面图
    * @param description 描述
    */
   default boolean baseUpdate(@NonNull JustGamePlatform justGamePlatform,String name, String platformVersion, String notice, String imageUrl, String description){
      Assert.notNull(platformVersion,"必须提供平台版本");
      Assert.notNull(description,"必须提供描述");
      Assert.notNull(notice,"必须提供其他须知");
      Assert.notNull(imageUrl,"必须提供封面图");
      Assert.notNull(name,"必须提供名称");
      Assert.notNull(justGamePlatform.getId(),"必须提供主键ID");
      justGamePlatform.setName(safeValue(name, null));
      justGamePlatform.setPlatformVersion(safeValue(platformVersion, null));
      justGamePlatform.setNotice(safeValue(notice, null));
      justGamePlatform.setImageUrl(safeValue(imageUrl, null));
      justGamePlatform.setDescription(safeValue(description, null));
      return updateById(justGamePlatform);
   }

}